//
//  KSNetRequest.h
//  Test
//
//  Created by KS on 15/11/24.
//  Copyright © 2015年 xianhe. All rights reserved.
//

#import <Foundation/Foundation.h>

@class UIViewController;
///  成功回调
typedef void (^requestSuccess)(NSURLSessionDataTask * _Nullable task, id _Nullable responseObject);
///  失败回调
typedef void (^requestFailure)(NSURLSessionDataTask * _Nullable task, NSError * _Nullable error);

@interface KSNetRequest : NSObject


/**
 *  检测网络状态下的POST|| GET请求
 *
 *  @param target     请求控制器
 *  @param method     POST || GET
 *  @param URLString  请求地址
 *  @param parameters 请求参数
 *  @param success    成功回调
 *  @param failure    失败回调
 */
+ (void)requestTarget:(nonnull UIViewController*)target method:(nonnull NSString*)method url:(nonnull NSString*)URLString parameters:(nullable id)parameters success:(nullable requestSuccess)success failure:(nullable requestFailure)failure;

/**
 *  带活动指示器的请求
 *  @param method     POST || GET
 *  @param URLString  请求地址
 *  @param parameters 请求参数
 *  @param success    成功回调
 *  @param failure    失败回调
 */
+ (void)requestProgress:(nonnull NSString*)method url:(nonnull NSString*)URLString parameters:(nullable id)parameters success:(nullable requestSuccess)success failure:(nullable requestFailure)failure;

/**
 *  普通POST请求
 *
 *  @param URLString  请求接口
 *  @param parameters 请求参数
 *  @param success    成功回调
 *  @param failure    失败回调
 */
+ (void)requestPOST:(nonnull NSString*)URLString parameters:(nullable id)parameters success:(nullable requestSuccess)success failure:(nullable requestFailure)failure;

/**
 *  普通GET请求
 *
 *  @param URLString  请求接口
 *  @param success    成功回调
 *  @param failure    失败回调
 */
+(void)requestGET:(nonnull NSString*)URLString parameters:(nullable id)parameters success:(nullable requestSuccess)success failure:(nullable requestFailure)failure;

/**
 *  上传带图片的内容，允许多张图片上传（URL）POST
 *
 *  @param url                 网络请求地址
 *  @param postParems          除图片之外的相关参数
 *  @param picFilePath         被上传的图片的路径
 *  @param picFileName         被上传的图片的名称
 */
+ (nonnull NSString *)postRequestWithURL: (nonnull NSString *)url
                      postParems: (nullable NSMutableDictionary *)postParems
                     picFilePath: (nullable NSMutableArray *)picFilePath
                     picFileName: (nullable NSMutableArray *)picFileName ;

/**
 *  AFN上传图片
 *
 *  @param urlStr                网络请求地址
 *  @param params                除图片之外的相关参数
 *  @param imageDataArray        要上传的图片
 */
-(void)postImageWithURL:(nonnull NSString *)urlStr parameters:(nullable id)params array:(nullable NSMutableArray *)imageDataArray;

@end
